Driven by increasing usage of a variety of network applications, such as those involving the Internet, computer networks are of increasing interest. In order to couple portions of a network together or to couple networks together, network processors residing in switches, routers, and/or other components are typically used. In order to adequately control the traffic through the network, the network processor must classify packets and perform a variety of other functions. Thus, a network administrator typically desires to manage the network processors. Such management includes, for example, configuring the network processors, being informed of issues in the network processor, and addressing these issues. This management is performed through communication between a host processor controlled by the network administrator and the network processors.
FIG. 1 depicts a block diagram of a conventional system 10 for managing network processors. The system 10 includes a conventional host processor 20 used by a network administrator and conventional network processors 30, 40, and 50. The owner of the system 10 typically purchases the conventional network processors 30, 40, and 50. The conventional host processor 20 typically includes conventional system configuration application 22 that is developed at least in part by the owner of the conventional system 10. The network administrator uses the conventional system configuration application 22 to configure, update, and otherwise manage the conventional network processors 30, 40, and 50 in the conventional system 10.
The conventional network processors 30, 40, and 50 each includes conventional control software/firmware 32, 42, and 52, respectively, and conventional protocol software/firmware 34, 44, and 54, respectively, that are used in configuring the network processors 30, 40, and 50, respectively, and for processing packets that arrive over the Internet. The conventional control software/firmware 32, 42, and 52 and the conventional protocol software/firmware 34, 44, and 54, respectively, may each be different. More specifically, the protocol software/firmware 34, 44, and 54 is particularly dependent upon the hardware of the network processors 30, 40, and 50, respectively, and thus differs. For example, the conventional network processors 30, 40, and 50 may include different versions of a particular model of network processor from a particular vendor and/or other model(s) of network processor that may be from other vendors. Thus, the conventional network processors 30 and 40 are depicted as having control software/firmware 32 and 42, respectively, and protocol software firmware 34 and 44, respectively, that are for different versions of a Model X network processor, while the control software/firmware 52 and the protocol software/firmware 54 of the conventional network processor 50 are for a Model Y network processor. Because of the differences between the conventional network processors 30, 40, and 50, each conventional network processor 30, 40, and 50 utilizes conventional application program interfaces (APIs) 12, 14, and 16, respectively, that are specific to the particular network processor 30, 40, and 50, respectively.
The conventional system configuration application 22 is used to configure and otherwise manage the conventional network processors 30, 40, and 50, respectively. The conventional system configuration application 22 thus includes corresponding conventional software modules 24, 26, and 28 for network processors 30, 40, and 50, respectively. Using the software modules 24, 26, and 28 specially developed for each network processor 30, 40, and 50, the host processor 20 can utilize the network processors 30, 40, and 50, respectively.
Although the conventional system 10 functions, one of ordinary skill in the art will readily recognize that the conventional system 10 is difficult to scale. The conventional network processors 30, 40, and 50 are typically heterogeneous in nature. Because the conventional network processors 30, 40, and 50 are heterogeneous, the conventional network processors may include different versions of a particular model of network processor and/or different models of network processor. In particular, the protocol software/firmware 34, 44, and 54 of different network processors are typically hardware dependent and, therefore, typically differ. Thus, the way in which particular network processors 30, 40, and 50 are configured may differ widely. Consequently, the software 24, 26, and 28 of the conventional system configuration application 22 are distinct. One of ordinary skill in the art will also readily recognize that the conventional system 10 may actually include a large number of network processors. Consequently, the number of network processors 30, 40, and 50 with which the conventional system configuration application 22 must be compatible may be large. As a result, the number of distinct software modules 24, 26, and 28 used by the conventional host processor 20 and developed by the owner of the conventional system 10 may be large. As a result, the conventional system configuration application 22 may be complex. It may thus be difficult to incorporate new network processors, which may have software/firmware not previously supported. The conventional system 10 is, therefore, difficult to scale. Because of difficulties in incorporating new software/firmware, evolving the conventional system configuration application 22 and the conventional system 10 to utilize improved network processors may be problematic.
One of ordinary skill in the art will also readily recognize that development of the conventional network processors 30, 40, and 50 consumes a significant amount of resources. The conventional protocol software/firmware 34, 44, and 54 depend intimately on the hardware of the corresponding conventional processors 30, 40, and 50, respectively. Consequently, different versions of the same network processor, such as network processors 30 and 40, may require the development of different protocol software/firmware 34, 44, and 54, respectively. Thus, providing a new network processor consumes additional development time. Further, because changes in the protocol software/firmware 34, 44, and 54 require changes in the software modules 24, 36, and 28, the changes in the protocol software/firmware 34, 44, and 54 ripple up to the host processor 20 in the manner discussed above.
Accordingly, what is needed is a system and method for allowing a host to configure network processors in a scalable, flexible manner. Also needed is a method for developing protocol software/firmware that is portable across heterogenous network processors. The present invention addresses such needs.